﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DLV.Library.Utilities;

namespace DLV.Data.Entities
{
    public class TravelGuideCashInfo
    {

        #region private fields

        private int _travelGuideCashId = Null.NullInteger;
        private int _travelGuideId = Null.NullInteger;
        private int _travelGuidePriceId = Null.NullInteger;
        private DateTime _beginDate = Null.NullDate;
        private DateTime _endDate = Null.NullDate;
        private int _createdBy = Null.NullInteger;
        private DateTime _createdDate = Null.NullDate;
        private int _updatedBy = Null.NullInteger;
        private DateTime _updatedDate = Null.NullDate;
        private int _status = Null.NullInteger;
        private decimal _totalPrice = Null.NullDecimal;

        #endregion

        #region public properties

        public int TravelGuideCashId
        {
            get { return _travelGuideCashId; }
            set { _travelGuideCashId = value; }
        }
        public int TravelGuideId
        {
            get { return _travelGuideId; }
            set { _travelGuideId = value; }
        }
        public int TravelGuidePriceId
        {
            get { return _travelGuidePriceId; }
            set { _travelGuidePriceId = value; }
        }
        public DateTime BeginDate
        {
            get { return _beginDate; }
            set { _beginDate = value; }
        }
        public DateTime EndDate
        {
            get { return _endDate; }
            set { _endDate = value; }
        }
        public int CreatedBy
        {
            get { return _createdBy; }
            set { _createdBy = value; }
        }
        public DateTime CreatedDate
        {
            get { return _createdDate; }
            set { _createdDate = value; }
        }
        public int UpdatedBy
        {
            get { return _updatedBy; }
            set { _updatedBy = value; }
        }
        public DateTime UpdatedDate
        {
            get { return _updatedDate; }
            set { _updatedDate = value; }
        }
        public int Status
        {
            get { return _status; }
            set { _status = value; }
        }

        #endregion

        #region Custom

        public string FullName { get; set; }
        public string Gender { get; set; }
        public decimal Price { get; set; }
        public decimal ExtraMoney { get; set; }

        public string Phone { get; set; }
        public string TravelGuideName {
            get { return FullName + " -- " + Phone; } 
        }
        public int TravelDay {
            get { return (int) ((EndDate - BeginDate).TotalDays); }
        }
        public int ScheduleId { get; set; }

        public decimal TotalPrice
        {
            get { return _totalPrice; }
            set { _totalPrice = value; }
        }

        #endregion
    }
}
